package felix.things.router.mqtt.server.common.session;

/**
 * 会话存储服务接口
 *
 * @author Felix
 * @date 2019/8/21
 */
public interface ISessionStoreService {

    /**
     * 存储会话
     *
     * @param clientId
     * @param sessionStore
     * @param expire
     */
    void put(String clientId, SessionStore sessionStore, int expire);

    /**
     * 设置session失效时间
     *
     * @param clientId
     * @param expire
     */
    void expire(String clientId, int expire);

    /**
     * 获取会话
     *
     * @param clientId
     * @return
     */
    SessionStore get(String clientId);

    /**
     * clientId的会话是否存在
     *
     * @param clientId
     * @return
     */
    boolean containsKey(String clientId);

    /**
     * 删除会话
     *
     * @param clientId
     */
    void remove(String clientId);

}
